package router

import (
	"os"

	"github.com/gin-gonic/gin"
	log "github.com/go-admin-team/go-admin-core/logger"
	"github.com/go-admin-team/go-admin-core/sdk"
)

// 可以设置多个版本的路由
var (
	v1RouterGroup = make([]func(*gin.RouterGroup), 0)
)

// InitRouter 路由初始化，不要怀疑，这里用到了
func InitRouter() {
	var r *gin.Engine
	h := sdk.Runtime.GetEngine()
	if h == nil {
		log.Fatal("not found engine...")
		os.Exit(-1)
	}
	switch h.(type) {
	case *gin.Engine:
		r = h.(*gin.Engine)
	default:
		log.Fatal("not support other engine")
		os.Exit(-1)
	}

	// 注册业务路由
	// TODO: 这里可存放业务路由，里边并无实际路由只有演示代码
	v1Router(r)
}

// 不同版本的路由初始化
func v1Router(r *gin.Engine) *gin.Engine {

	// 可根据业务需求来设置接口版本
	v1 := r.Group("/v1")

	for _, f := range v1RouterGroup {
		f(v1)
	}
	return r
}
